C语言网络编程从入门到精通
📚 共计 30 章节
第01章
网络基础与C语言回顾
OSI七层模型、TCP/IP四层模型、C语言指针与内存管理复习
基础
理论
第02章
Socket编程入门
什么是Socket、Socket类型(流式与数据报)、Socket地址结构
入门
核心
第03章
TCP编程基础(上)
socket()、bind()、listen()函数详解与实战
TCP
服务端
第04章
TCP编程基础(下)
accept()、connect()、send()、recv()函数详解与实战
TCP
通信
第05章
TCP回射服务器与客户端
实现一个完整的TCP回射服务器,理解阻塞I/O模型
实战
回射
第06章
多进程并发服务器
fork()系统调用、孤儿进程与僵尸进程、多进程服务器实现
并发
进程
第07章
多线程并发服务器
pthread库入门、线程同步(互斥锁、条件变量)、多线程服务器实现
线程
同步
第08章
I/O多路复用(上)
select()函数原理、优缺点、基于select的并发服务器
多路复用
select
第09章
I/O多路复用(中)
poll()函数原理、与select对比、基于poll的并发服务器
poll
对比
第10章
I/O多路复用(下)
epoll()函数原理、LT与ET模式、基于epoll的高并发服务器
epoll
高并发
第11章
UDP编程
UDP通信流程、recvfrom()与sendto()、UDP回射服务器实现
UDP
数据报
第12章
UDP与TCP对比
可靠性、有序性、面向连接 vs 无连接、应用场景选择
对比
选型
第13章
高级I/O函数
readv()、writev()、sendfile()、mmap()共享内存
零拷贝
高级
第14章
套接字选项
getsockopt()、setsockopt()、SO_REUSEADDR、TCP_NODELAY等
选项
调优
第15章
名字与地址转换
gethostbyname()、getaddrinfo()、inet_pton()与inet_ntop()
DNS
转换
第16章
Unix域套接字
Unix域流式套接字、Unix域数据报套接字、本地进程间通信
IPC
本地
第17章
信号驱动I/O
信号机制回顾、SIGIO信号、信号驱动I/O模型实现
信号
异步
第18章
非阻塞I/O
fcntl()设置非阻塞、非阻塞connect()、非阻塞accept()
非阻塞
fcntl
第19章
超时机制
alarm()信号超时、select()超时、setsockopt()超时
超时
控制
第20章
原始套接字
原始套接字创建、IP_HDRINCL选项、构造IP数据包
原始套接字
IP
第21章
数据链路层访问
SOCK_PACKET、PF_PACKET协议族、抓包程序基础
抓包
链路层
第22章
广播与多播
广播地址、多播组管理、setsockopt()多播选项
广播
多播
第23章
DNS协议与编程
DNS报文格式、resolver库函数、实现简易DNS查询
DNS
协议
第24章
HTTP协议解析
HTTP请求与响应格式、基于Socket的HTTP客户端实现
HTTP
客户端
第25章
SSL/TLS安全编程
OpenSSL库入门、SSL握手、加密通信实现
安全
SSL
第26章
Reactor模式
Reactor设计模式原理、基于epoll的Reactor框架实现
设计模式
Reactor
第27章
Proactor模式
Proactor设计模式原理、异步I/O(AIO)基础
Proactor
AIO
第28章
网络性能调优
TCP缓冲区调优、Nagle算法、延迟确认、零拷贝技术
性能
调优
第29章
常见网络故障排查
strace、tcpdump、netstat、lsof工具使用与案例分析
调试
工具
第30章
综合项目实战
实现一个简易HTTP服务器(支持静态文件、CGI、并发)
项目
HTTP服务器